A cache is a relatively high-speed, small, local memory which is used to provide a local storage for frequently accessed memory locations of a larger, relatively slow, main memory. By storing the information or a copy of the information locally, the cache is able to intercept memory references and handle them directly without transferring the request to the main memory over the system bus. The result is lower traffic on the memory bus and decreased latency on the CPU bus to the requesting processor.
The most powerful microprocessor now used in IBM compatible personal computers is the Intel 80486 which uses caching to satisfy the increasing demands of application programs for more memory and faster operating speeds. The Intel 80486 has a main processor, a math coprocessor and a cache controller with 8K bytes of RAM data cache all integrated on a single chip. The purpose of the internal cache is to reduce the n umber of times the CPU has to interface with external memory subsystems for its instructions and data. This is accomplished as follows. When the CPU requests data, the address of the data is examined by the internal 8K RAM cache to see if the data is in the cache. If the data/instruction is in the internal cache, the CPU request can be satisfied within about 15 ns as opposed to 70 to 100 ns when data instruction is not in the internal cache.
In order to further reduce the access time when the data/instruction is not in the internal cache, a second-level cache is often used. A second-=level cache is external to the 80486 CPU, but supports much faster access times than the main memory.
As their needs expand, users may also want to add on more memory, so it is also advantageous to have a single second-level cache controller that can map to a very large address space and selectively to a smaller address space, depending upon the configuration of memory modules in the system.
It is therefore an object of the present invention to provide a cache controller which can be added to an existing microprocessor as an end-user installable module.
It is also an object of the present invention to provide a cache controller that can map to a very large address space and selectively to a smaller address space, depending upon the configuration of memory modules in the system.